<?php require_once ('../common/check.php');  //权限校验 ?>
<?php
    // 一.引入文件，连接数据库
    require('../common/conn.php');

    // 二. 获取用户选择的操作
    $action =  $_REQUEST['action'];

    // 三. 根据操作的值执行不同的逻辑
    // 结构如下：
    //if($action == "insert") {
    //
    //} else if ($action == "edit") {
    //
    //} else if ($action == "update") {
    //
    //} else if ($action == "del") {
    //
    //}
    // 解释如下：
    // 1. insert 执行添加操作：
    //                首先获取从添加页面传递过来的参数（如果有文件则先执行上传），
    //                然后拼接sql并执行sql
    //                最后跳转到article_index.php页面；
    // 2.edit 显示修改页面
    //                 首先获取被修改文章的id
    //                 然后根据id查询文章的内容保存到结果集
    //                 最后跳转到article_edit.php页面，并将结果集显示在相应的文本框
    // 3. update 执行更新操作
    //                  首先获取从添加页面传递过来的参数，必须通过hidden控件传递被修改文章的id（如果有文件则先执行上传），
    //                  然后拼接sql并执行sql
    //                  最后跳转到article_index.php页面；
    // 4. del 删除操作
    //                  首先获取被删除文章的id
    //                  然后拼接sql并执行sql
    //                  最后跳转到article_index.php页面


    if ($action == "insert") {

        //1.设置时区
        date_default_timezone_set("PRC");

        $filePath = "";
        /// 1. 判断文件框是否已经选择文件
        if(!empty($_FILES['img']['tmp_name'])){
            $tmp_name = $_FILES['img']['tmp_name'];  // 临时文件的路径
            $name = $_FILES['img']['name']; // 源文件名字
            $ext = strrchr($name,"."); // 获取后缀
            $name = uniqid().$ext; // 生成一个新的文件名字
            $filePath = "upload/" . $name; //文件保存路径+文件名字
            move_uploaded_file($tmp_name, $filePath);
        }

        //2.获取表单所有参数
        $title = $_POST['title'];
        $content = $_POST['content'];
        $imgPath =  $filePath;
        $time = time();
        $category = $_POST['category'];

        //3.准备sql 添加语句

        $sql = "insert into article (title, content, img, category, add_time) 
            values ('{$title}', '{$content}', '{$imgPath}','{$category}', '${time}')";
        //4.执行sql 添加语句
        $result = mysqli_query($link,$sql);
        //5.判断结果
        if($result === false){
            exit('添加失败！');
        }
        //6.关闭连接
        mysqli_close($link);

        //7.执行后跳转
        header('location:article_index.php');

    } else if ($action == "edit") {

        // 0. 获取被修改的文章id
        $id = $_GET['id'] ?? '';
        //1.准备sql语句
        $sql = 'select * from article where id = ' . $id;
        //2.执行sql语句
        $result = mysqli_query($link,$sql);
        //3.判断执行结果
        if($result === false){
            exit('查询失败');
        }
        //4.解析结果集
        $row = mysqli_fetch_assoc($result);
        //5.关闭连接
        mysqli_close($link);

        // 6.引入到article_edit.php页面
        require "./article_edit.php";

    } else if ($action == "update") {

        //1.设置时区
        date_default_timezone_set("PRC");

        //2.获取修改的数据.
        $title = $_POST['title'];
        $content = $_POST['content'];
        $time = time();
        $category = $_POST['category'];
        $id = $_POST['id'];

        //3.获取图片
        $pathName = "";
        if ($_FILES['img']['error']==0){
            $tmp_name = $_FILES['img']['tmp_name'];
            $ext = strrchr($_FILES['img']['name'],".");
            $name = uniqid().$ext;
            $pathName = "upload/" . $name;
            move_uploaded_file($tmp_name, $pathName);
        }

        //3.准备sql 语句
        $sql = "update article set title='{$title}',content='{$content}', img='{$pathName}', add_time='{$time}',category='{$category}'where id='{$id}'";

        //4.执行sql语句,并判定.
        $result = mysqli_query($link,$sql);
        if($result === false){
            exit('修改失败');
        }
        //5.关闭连接.
        mysqli_close($link);
        header('location:article_index.php');

    } else if ($action == "del") {
        //1.获取所需参数
        $id = $_GET['id'];
        //2.准备sql语句
        $sql = "delete from article where id = {$id}";
        //3.sql语句执行
        $result = mysqli_query($link,$sql);
        //4.关闭连接
        mysqli_close($link);
        //5.判断执行结果
        if($result == true){
            //7.跳转页面
            header('location:article_index.php');
        }else{
            exit('删除失败');
        }

    }

